package com.fc.mall.model;

import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;

@Getter
@Setter
public class UmsMemberUpgrade implements Serializable {
    /**
     * 主键
     *
     * @mbggenerated
     */
    private Long id;

    /**
     * 会员id
     *
     * @mbggenerated
     */
    private Long memberId;

    /**
     * 当前等级id
     *
     * @mbggenerated
     */
    private Long currentLevelId;

    /**
     * 所在等级时拉新人的人数
     *
     * @mbggenerated
     */
    private Integer childCount;

    /**
     * 所在等级时 已收货订单总金额 (分)
     *
     * @mbggenerated
     */
    private BigDecimal commissionAmount;


    private Integer totalOrderCount;

    /**
     * 升级类型：
     * 1-》 正常条件升级， 2-》 手动升级
     */
    private Integer upgradeType;

    /**
     * 过期时间
     */
    private Integer expiredDate;

    /**
     * 过期类型
     * 1： 一个月， 2： 一年： 3： 永久
     */
    private Integer expiredType;

    private static final long serialVersionUID = 1L;



    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", memberId=").append(memberId);
        sb.append(", currentLevelId=").append(currentLevelId);
        sb.append(", childCount=").append(childCount);
        sb.append(", commissionAmount=").append(commissionAmount);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }

    public enum UpgradeType
    {
        AUTO(1),
        MANUAL(2);

        private int value;
        UpgradeType(int value)
        {
            this.value = value;
        }
        public int getValue() {
            return value;
        }
    }
}